package main

import "fmt"

func main() {
	//位运算符
	/*
	   &  左右两边都为1返回1
	   | 左右两边有一个1返回1
	   ^ 左右两边不相同返回1
	   << 左移n位就是乘以2的n次方  “a<<b” 把a的各个二进制全部往左移动b位，高位丢弃，低位补0
	   << 右移n位就是乘以2的n次方
	*/
	var (
		a = 5  // 0101
		b = 10 // 1010
	)
	fmt.Println("a&b", a&b)   //0    0000
	fmt.Println("a|b", a|b)   //15   1111
	fmt.Println("a^b", a^b)   //15   1111
	fmt.Println("a<<b", a<<b) //5120   0101向左转移10位变成-> 1010000000000
	fmt.Println("a<<b", a>>b) //0   向左

}
